///*
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements.  See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership.  The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License.  You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied.  See the License for the
// specific language governing permissions and limitations
// under the License.
// */
//
//#import "CDVPlugin.h"
//
//NSString* const CDVPageDidLoadNotification = @"CDVPageDidLoadNotification";
//NSString* const CDVPluginHandleOpenURLNotification = @"CDVPluginHandleOpenURLNotification";
//NSString* const CDVPluginResetNotification = @"CDVPluginResetNotification";
//NSString* const CDVLocalNotification = @"CDVLocalNotification";
//
//@interface CDVPlugin ()
//
//@property (readwrite, assign) BOOL hasPendingOperation;
//
//@end
//
//@implementation CDVPlugin
//@synthesize webView, viewController, commandDelegate, hasPendingOperation;
//
//// Do not override these methods. Use pluginInitialize instead.
//- (CDVPlugin*)initWithWebView:(UIWebView*)theWebView settings:(NSDictionary*)classSettings
//{
//    return [self initWithWebView:theWebView];
//}
//
//- (CDVPlugin*)initWithWebView:(UIWebView*)theWebView
//{
//    self = [super init];
//    if (self) {
//        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onAppTerminate) name:UIApplicationWillTerminateNotification object:nil];
//        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onMemoryWarning) name:UIApplicationDidReceiveMemoryWarningNotification object:nil];
//        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleOpenURL:) name:CDVPluginHandleOpenURLNotification object:nil];
//        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onReset) name:CDVPluginResetNotification object:theWebView];
//
//        self.webView = theWebView;
//    }
//    return self;
//}
//
//- (void)pluginInitialize
//{
//    // You can listen to more app notifications, see:
//    // http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UIApplication_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40006728-CH3-DontLinkElementID_4
//
//    // NOTE: if you want to use these, make sure you uncomment the corresponding notification handler
//
//    // [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onPause) name:UIApplicationDidEnterBackgroundNotification object:nil];
//    // [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onResume) name:UIApplicationWillEnterForegroundNotification object:nil];
//    // [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onOrientationWillChange) name:UIApplicationWillChangeStatusBarOrientationNotification object:nil];
//    // [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onOrientationDidChange) name:UIApplicationDidChangeStatusBarOrientationNotification object:nil];
//
//    // Added in 2.3.0
//    // [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didReceiveLocalNotification:) name:CDVLocalNotification object:nil];
//
//    // Added in 2.5.0
//    // [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(pageDidLoad:) name:CDVPageDidLoadNotification object:self.webView];
//}
//
//- (void)dispose
//{
//    viewController = nil;
//    commandDelegate = nil;
//    webView = nil;
//}
//
///*
//// NOTE: for onPause and onResume, calls into JavaScript must not call or trigger any blocking UI, like alerts
//- (void) onPause {}
//- (void) onResume {}
//- (void) onOrientationWillChange {}
//- (void) onOrientationDidChange {}
//*/
//
///* NOTE: calls into JavaScript must not call or trigger any blocking UI, like alerts */
//- (void)handleOpenURL:(NSNotification*)notification
//{
//    // override to handle urls sent to your app
//    // register your url schemes in your App-Info.plist
//
//    NSURL* url = [notification object];
//
//    if ([url isKindOfClass:[NSURL class]]) {
//        /* Do your thing! */
//    }
//}
//
///* NOTE: calls into JavaScript must not call or trigger any blocking UI, like alerts */
//- (void)onAppTerminate
//{
//    // override this if you need to do any cleanup on app exit
//}
//
//- (void)onMemoryWarning
//{
//    // override to remove caches, etc
//}
//
//- (void)onReset
//{
//    // Override to cancel any long-running requests when the WebView navigates or refreshes.
//}
//
//- (void)dealloc
//{
//    [[NSNotificationCenter defaultCenter] removeObserver:self];   // this will remove all notification unless added using addObserverForName:object:queue:usingBlock:
//}
//
//- (id)appDelegate
//{
//    return [[UIApplication sharedApplication] delegate];
//}
//
//- (NSString*)writeJavascript:(NSString*)javascript
//{
//    return [self.webView stringByEvaluatingJavaScriptFromString:javascript];
//}
//
//- (NSString*)success:(CDVPluginResult*)pluginResult callbackId:(NSString*)callbackId
//{
//    [self.commandDelegate evalJs:[pluginResult toSuccessCallbackString:callbackId]];
//    return @"";
//}
//
//- (NSString*)error:(CDVPluginResult*)pluginResult callbackId:(NSString*)callbackId
//{
//    [self.commandDelegate evalJs:[pluginResult toErrorCallbackString:callbackId]];
//    return @"";
//}
//
//// default implementation does nothing, ideally, we are not registered for notification if we aren't going to do anything.
//// - (void)didReceiveLocalNotification:(NSNotification *)notification
//// {
////    // UILocalNotification* localNotification = [notification object]; // get the payload as a LocalNotification
//// }
//
//@end
